perm filename COLOR[900,BGB] blob
sn#129609 filedate 1974-11-12 generic text, type T, neo UTF8
00100 TITLE COLOR
00200 EXTERN NUMVAL,FIX1A,STATUS,TSERVO,L1,L2,L3
00300 A←1
00400 B←2
00500 C←3
00510 D←4
00520 EE←5
00600 P←14
00700 I←4
00800 J←5
00900 K←6
01000 L←7
01100 M←10
01200 N←11
01300 OPDEF CALL[34B8]
01400 OPDEF JCALL[35B8]
01500 OPDEF SPCWAR[43B8]
01600
01700 TSINIT: MOVEI 1,11
01800 MOVE 1,STATUS
01900 SPCWAR 0,636367
02000 SPCWAR 1,TSERVO
02100 SETZ 1,
02200 POPJ P,
02210
02220 SWS: CALLI 400000
02230 ANDI 377
02240 JCALL 1,FIX1A
02300
02400 CTVF1: MOVEM AC
02500 MOVE [XWD 1,AC+1]
02600 BLT AC+17
02700 MOVEI I,3
02800 TV2: MOVEI J,10
02900 TV3: PUSHJ P,INTV
03000 PUSHJ P,TVAD
03100 SOJG J,TV3
03200 PUSHJ P,LENS
03205 MOVEI J,4 ;SLEEP
03210 CALLI J,31
03300 SOJGE I,TV2
03400 MOVE [XWD AC+1,1]
03500 BLT 17
03600 MOVE AC
03700 POPJ P,
03710 TVADD: MOVEM AC
03715 MOVE [XWD 1,AC+1]
03720 BLT AC+17
03725 CALL 1,NUMVAL
03730 MOVEM 1,I
03735 PUSHJ P,TVAD
03740 MOVE [XWD AC+1,1]
03745 BLT 17
03750 MOVE AC
03755 SETZ A,
03760 POPJ P,
03765
03800
03900 TVAD: MOVEI L,1
04000 MOVEI M,1
04010 SKIPGE I
04020 SETZ I,
04030 CAILE I,3
04040 SETZ I,
04100 L1B: MOVEI N,11
04600 MOVE C,BUFFER(M)
04700 L2B: SETZ B,
04800 ROTC B,4
04900 MOVE @GREY(I)
05000 ADDM COLORS(L)
05100 AOJ L,
05200 SOJG N,L2B
05300 AOJ M,
05400 CAIE M,1001
05500 JRST L1B
05600 POPJ P,
05700
05800 ;ADVANCE LENS
05900 LENS: MOVEI 1,14
06000 MOVEM 1,STATUS
06100 MOVE 1,STATUS
06200 TRNE 1,20
06300 HALT ;HUNG
06400 TRNN 1,1
06500 JRST .-4
06600 SETZ 1,
06700 POPJ P,
06800
06900 ;CLEAR COLORS DATA AREA
07000 ZIP: MOVEI 1,11000
07100 SETZM COLORS(1)
07200 SOJGE 1,.-1
07300 SETZ 1,
07400 POPJ P,
07500
07600 ;INPUT TV IMAGE
07700 INTV: INIT 17,17
08200 SIXBIT/TV/
08300 0
08400 HALT ;INIT ERROR TV
08410 SKIPGE I
08420 SETZ I,
08430 CAILE I,3
08440 SETZ I,
08500 MOVE 2,WC(I)
08600 MOVE 3,WD(I)
08700 MOVEM 2,TVC
08800 MOVEM 3,TVD
08840 MOVE 2,WE(I)
08850 MOVEM 2,E
08900 SETZM TVCONI
09000 INPUT 17,E
09100 SETZ 1,
09200 POPJ P,
09300
09400 ;TV CONTROL PARAMETERS
09500 WC: 071002 ;CONO'S
09600 RC: 071002
09700 BC: 071002
09800 GC: 071002
09900
10000 WD: 100100010000 ;DATAO'S
10100 RD: 100100010000
10200 BD: 100100010000
10300 GD: 100100010000
10400
10410 WE: XWD -1000,BUFFER
10420 RE: XWD -1000,BUFFER
10430 BE: XWD -1000,BUFFER
10440 GE: XWD -1000,BUFFER
10500 E: XWD -1000,BUFFER
10600 TVC: 0 ;CONO
10700 TVD: 0 ;DATAO
10800 TVCONI: 0 ;CONI
10900
11000 BUFFER: 1000
11100 BLOCK 1000
11200 COLORS: 0
11300 BLOCK 11000
11400
11500 AC: 0
11600 BLOCK 20
11700
11800 ;GREY CODE
11900 WGREY: 12B8 ↔ 13B8 ↔ 11B8 ↔ 10B8 ↔ 15B8 ↔ 14B8 ↔ 16B8
12000 17B8 ↔ 5B8 ↔ 4B8 ↔ 6B8 ↔ 7B8
12100 2B8 ↔ 3B8 ↔ 1B8 ↔ 0
12200
12300 RGREY: 12B17 ↔ 13B17 ↔ 11B17 ↔ 10B17 ↔ 15B17 ↔ 14B17
12400 16B17 ↔ 17B17 ↔ 5B17 ↔ 4B17 ↔ 6B17 ↔ 7B17
12500 2B17 ↔ 3B17 ↔ 1B17 ↔ 0
12600
12700 BGREY: 12B26 ↔ 13B26 ↔ 11B26 ↔ 10B26 ↔ 15B26 ↔ 14B26
12800 16B26 ↔ 17B26 ↔ 5B26 ↔ 4B26 ↔ 6B26 ↔ 7B26
12900 2B26 ↔ 3B26 ↔ 1B26 ↔ 0
13000
13100 GGREY: 12 ↔ 13 ↔ 11 ↔ 10 ↔ 15 ↔ 14 ↔ 16 ↔ 17
13200 5 ↔ 4 ↔ 6 ↔ 7 ↔ 2 ↔ 3 ↔ 1 ↔ 0
13300 GREY: WGREY(B) ↔ RGREY(B) ↔ BGREY(B) ↔ GGREY(B)
13400
13500 ;SET CLIP LEVELS
13600
13700 CLIP: MOVEM B,TEM1#
13800 MOVEM C,TEM2#
13900 CALL 1,NUMVAL
14000 ANDI A,3
14100 MOVEM A,TEM0# ;N TH COLOR
14200 MOVE A,TEM1
14300 CALL 1,NUMVAL
14400 ANDI A,7
14500 MOVEM A,TEM1 ;BOTTOM CLIP LEVEL
14600 MOVE A,TEM2
14700 CALL 1,NUMVAL
14800 ANDI A,7 ;TOP CLIP LEVEL
14900 MOVE B,TEM1
15000 MOVE C,TEM0
15300 ROT B,3
15400 IOR B,A
15500 ROT B,14
15600 IOR B,[1002]
15700 MOVEM B,WC(C)
15800 SETZ A,
15900 POPJ P,
16000
16100 ;SET WINDOW PARAMETERS (N,X,Y,W,H)
16200 WINDOW: MOVEM B,X#
16300 MOVEM C,Y#
16400 MOVEM D,W#
16500 MOVEM EE,H#
16600 CALL 1,NUMVAL
16700 ANDI A,3
16800 MOVEM A,TEM0 ;N TH COLOR
16900 MOVEM A,EE
17000 DEFINE VALNUM (AA,AAA)
17100 { MOVE A,AA
17200 CALL 1,NUMVAL
17300 MOVEM A,AA
17400 MOVEM A,AAA(EE)⎇
17500 VALNUM X,XXX
17600 VALNUM Y,YYY
17700 VALNUM W,WWW
17800 VALNUM H,HHH
17900 MOVE A,Y
18000 ROT A,9
18100 IOR A,X
18200 ROT A,9
18300 IOR A,W
18400 ROT A,9
18500 MOVE B,TEM0
18600 MOVEM A,WD(B) ;DATAO
18700 MOVE A,W
18800 IMUL A,H
18900 CAILE A,1000
19000 MOVEI A,1000
19100 MOVNS A
19200 HRLM A,WE(B) ;INPUT EFFECTIVE ADDRESS
19300 SETZ A,
19400 POPJ P,
19500
19600 ;FETCH N TH COLOR'S INTENSITY AT X,Y
19700 FETCH: MOVEM B,X
19800 MOVEM C,Y
19900 CALL 1,NUMVAL
20000 ANDI A,3
20100 MOVEM A,TEM0
20200 MOVE A,X
20300 CALL 1,NUMVAL
20400 MOVEM A,X
20500 MOVE A,Y
20600 CALL 1,NUMVAL
20700 MOVEM A,Y
20800
20900 MOVE EE,TEM0
21000 MOVE B,X ;(Y0-Y)*W*11 + (X0-X)
21100 SUB A,YYY(EE)
21200 SUB B,XXX(EE)
21300 IMUL A,WWW(EE)
21400 IMULI A,11
21500 ADD A,B
21600 MOVE B,COLORS(A)
21700
21800 TRNN EE,2
21900 ROT B,-22
22000 TRNN EE,1
22100 ROT B,-11
22200 ANDI B,777
22300 EXCH A,B
22400 JCALL 1,FIX1A
22500
22600
22700 XXX: 0 ↔ 0 ↔ 0 ↔ 0
22800 YYY: 0 ↔ 0 ↔ 0 ↔ 0
22900 WWW: 0 ↔ 0 ↔ 0 ↔ 0
23000 HHH: 0 ↔ 0 ↔ 0 ↔ 0
23010 TVSUB: CALL 1,NUMVAL
23015 MOVEM 1,I
23020 MOVEM 0,TEM3#
23025 MOVEM L,TEM0
23030 MOVEM M,TEM1
23035 MOVEM N,TEM2#
23100 MOVEI L,1
23105 MOVEI M,1
23110 SKIPGE I
23115 SETZ I,
23120 CAILE I,3
23125 SETZ I,
23130 L1A: MOVEI N,11
23135 MOVE C,BUFFER(M)
23140 L2A: SETZ B,
23145 ROTC B,4
23150 MOVE @GREY(I)
23155 SUBM COLORS(L)
23160 AOJ L,
23165 SOJG N,L2A
23170 AOJ M,
23175 CAIE M,1001
23180 JRST L1A
23181 MOVE L,TEM0
23182 MOVE M,TEM1
23183 MOVE N,TEM2
23184 MOVE TEM3
23185 POPJ P,
24000
24100 FOCUS: CALL 1,NUMVAL
24200 MOVEM 1,L1
24300 SETZB 1,STATUS
24400 POPJ P,
24500
24600 PAN: CALL 1,NUMVAL
24700 MOVEM 1,L3
24800 SETZB 1,STATUS
24900 POPJ P,
25000
25100 TILT: CALL 1,NUMVAL
25200 MOVEM 1,L2
25300 SETZB 1,STATUS
25400 POPJ P,
25500
25600 END
25700